home *** CD-ROM | disk | FTP | other *** search
- ;
- ; ROI -- (c) Copyright 1990 Chris Butler
- ;
- set all off
- goto top
- all:
- set all on
- top:
-
-
- video 1
-
- color 1
- clearscr
- color 15 1
- set all_savings 0
- set tot_sav_1 0
- set tot_sav_2 0
- set tot_sav_3 0
-
- set inv_value 0
- set inv_sav_1 0
- set inv_sav_2 0
- set inv_sav_3 0
-
- set purch_value 0
- set purch_sav_1 0
- set purch_sav_2 0
- set purch_sav_3 0
-
- set labor_value 0
- set labor_sav_1 0
- set labor_sav_2 0
- set labor_sav_3 0
-
- set down_hrs 0
- set prod_cost 0
- set down_cost 0
- set prodn_sav_1 0
- set prodn_sav_2 0
- set prodn_sav_3 0
-
- set equip_value 0
- set equip_sav_1 0
- set equip_sav_2 0
- set equip_sav_3 0
-
- ; INITIAL PAINT SCREEN
- ; HEADER AREA
-
- databegin line1
- text 0,24 chr(201)
- mark 33
- text chr(205)
- loop
- text " MAXIMO ROI "
- mark 33
- text chr(205)
- loop
- text 79,24 chr(187)
- text 0,23 chr(186)$@$chr(186)
- text 0,22 chr(186)$@$chr(186)
- text 0,21 chr(200)
- mark 78
- text chr(205)
- loop
- text chr(188)
-
- ; WORKSHEET AREA
-
- databegin title_row
- text 0,20 chr(201)$@$chr(187)
- text 0,19 chr(186)$@$chr(186)
- text 0,18 chr(204)$@$chr(185)
- databegin inv
- text 0,17 chr(186)$@$chr(186)
- text 0,16 chr(199)$@$chr(182)
- databegin purch
- text 0,15 chr(186)$@$chr(186)
- text 0,14 chr(199)$@$chr(182)
- databegin labor
- text 0,13 chr(186)$@$chr(186)
- text 0,12 chr(199)$@$chr(182)
- databegin prodn
- text 0,11 chr(186)$@$chr(186)
- text 0,10 chr(186)$@$chr(186)
- text 0,9 chr(186)$@$chr(186)
- text 0,8 chr(199)$@$chr(182)
- databegin equip
- text 0,7 chr(186)$@$chr(186)
- text 0,6 chr(199)$@$chr(182)
- text 0,5 chr(186)$@$chr(186)
- text 0,4 chr(200)$@$chr(188)
- databegin cmds
- color 15 7
- text 1,0 @
- text 36,0 chr(25)
- WHEN F10 GOTO CLOCK
-
- ; GET INV VALUES
-
- getinv:
- color 15 ; start w/inv sect hilited
- rect 25,17 33,17
- color 1 15
- text 34-len(@inv_value),17 @inv_value
-
- color 1 7
- databegin invhlp
- text 1,3 @
- text 1,2 @
- text 1,1 @
-
- color 1 15
- set var3 right(@inv_value,1)
- intin 25,17 @var3
- if @0==skip inv_skip
- if @0==up inv_skip
- set inv_value @0
-
- inv_skip:
- set inv_sav_1 (@inv_value/100)*3
- set inv_sav_2 (@inv_value/100)*5
- set inv_sav_3 (@inv_value/100)*7
-
- color 1
- rect 25,17 33,17
- rect 39,17 48,17
- rect 54,17 63,17
- rect 69,17 78,17
- color 15 1
- text 34-len(@inv_value),17 @inv_value
- text 48-len(@inv_sav_1),17 @inv_sav_1
- text 63-len(@inv_sav_2),17 @inv_sav_2
- text 78-len(@inv_sav_3),17 @inv_sav_3
- sum_savings
-
- if @0==up getequip
-
- ; GET PURCH VALUES
-
- getpurch:
- color 15
- rect 25,15 33,15
- color 1 15
- text 34-len(@purch_value),15 @purch_value
- color 15 1
- text 48-len(@purch_sav_1),15 @purch_sav_1
- text 63-len(@purch_sav_2),15 @purch_sav_2
- text 78-len(@purch_sav_3),15 @purch_sav_3
-
- color 1 7
- databegin purchhlp
- text 1,3 @
- text 1,2 @
- text 1,1 @
-
- color 1 15
- set var3 right(@purch_value,1)
- intin 25,15 @var3
- if @0==skip purch_skip
- if @0==up purch_skip
-
- set purch_value @0
-
- purch_skip:
- set purch_sav_1 (@purch_value/100)*5
- set purch_sav_2 (@purch_value/100)*10
- set purch_sav_3 (@purch_value/100)*15
-
- sum_savings
- color 1
- rect 25,15 33,15
- rect 39,15 48,15
- rect 54,15 63,15
- rect 69,15 78,15
- color 15 1
- text 34-len(@purch_value),15 @purch_value
- text 48-len(@purch_sav_1),15 @purch_sav_1
- text 63-len(@purch_sav_2),15 @purch_sav_2
- text 78-len(@purch_sav_3),15 @purch_sav_3
-
- if @0==up getinv
-
- ; GET LABOR VALUE
-
- getlabor:
- color 15
- rect 25,13 33,13
- color 1 15
- text 34-len(@labor_value),13 @labor_value
- color 15 1
- text 48-len(@labor_sav_1),13 @labor_sav_1
- text 63-len(@labor_sav_2),13 @labor_sav_2
- text 78-len(@labor_sav_3),13 @labor_sav_3
-
- color 1 7
- databegin laborhlp
- text 1,3 @
- text 1,2 @
- text 1,1 @
-
- color 1 15
- set var3 right(@labor_value,1)
- intin 25,13 @var3
- if @0==skip labor_skip
- if @0==up labor_skip
-
- set labor_value @0
-
- labor_skip:
- set labor_sav_1 (@labor_value/100)*5
- set labor_sav_2 (@labor_value/100)*10
- set labor_sav_3 (@labor_value/100)*20
-
- sum_savings
- color 1
- rect 25,13 33,13
- rect 39,13 48,13
- rect 54,13 63,13
- rect 69,13 78,13
- color 15 1
- text 34-len(@labor_value),13 @labor_value
- text 48-len(@labor_sav_1),13 @labor_sav_1
- text 63-len(@labor_sav_2),13 @labor_sav_2
- text 78-len(@labor_sav_3),13 @labor_sav_3
-
- if @0==up getpurch
-
- ; GET PRODN NUMBERS
-
- getprodn:
- color 15
- rect 25,11 33,11
- color 1 15
- text 34-len(@down_hrs),11 @down_hrs
-
- color 1 7
- databegin prodnhlp
- text 1,3 @
- text 1,2 @
- text 1,1 @
-
- color 1 15
- set var3 right(@down_hrs,1)
- intin 25,11 @var3
- if @0==skip hrs_skip
- if @0==up hrs_skip
-
- set down_hrs @0
-
- hrs_skip:
- set down_cost @prod_cost*@down_hrs
- set prodn_sav_1 (@down_cost*3)/100
- set prodn_sav_2 (@down_cost*5)/100
- set prodn_sav_3 (@down_cost*10)/100
-
- color 1
- rect 25,11 33,11
- rect 25,9 33,9
- rect 39,9 48,9
- rect 54,9 63,9
- rect 69,9 78,9
- color 15 1
- text 34-len(@down_hrs),11 @down_hrs
- text 34-len(@down_cost),9 @down_cost
- text 48-len(@prodn_sav_1),9 @prodn_sav_1
- text 63-len(@prodn_sav_2),9 @prodn_sav_2
- text 78-len(@prodn_sav_3),9 @prodn_sav_3
- sum_savings
-
- if @0==up getlabor
-
- getcost:
- color 15
- rect 25,10 33,10
- color 1 15
- text 34-len(@prod_cost),10 @prod_cost
- set var3 right(@prod_cost,1)
- intin 25,10 @var3
- if @0==skip cost_skip
- if @0==up cost_skip
- set prod_cost @0
-
- cost_skip:
- set down_cost @prod_cost*@down_hrs
- set prodn_sav_1 (@down_cost*3)/100
- set prodn_sav_2 (@down_cost*5)/100
- set prodn_sav_3 (@down_cost*10)/100
- color 1
- rect 25,10 33,10
- rect 25,9 33,9
- rect 39,9 48,9
- rect 54,9 63,9
- rect 69,9 78,9
-
- color 15 1
- text 34-len(@prod_cost),10 @prod_cost
- text 34-len(@down_cost),9 @down_cost
- text 48-len(@prodn_sav_1),9 @prodn_sav_1
- text 63-len(@prodn_sav_2),9 @prodn_sav_2
- text 78-len(@prodn_sav_3),9 @prodn_sav_3
- sum_savings
-
- if @0==up getprodn
-
- ; GET EQUIP VALUE
- getequip:
-
- color 15
- rect 25,7 33,7
- color 1 15
- text 34-len(@equip_value),7 @equip_value
- color 15 1
- text 48-len(@equip_sav_1),7 @equip_sav_1
- text 63-len(@equip_sav_2),7 @equip_sav_2
- text 78-len(@equip_sav_3),7 @equip_sav_3
-
- color 1 7
- databegin equiphlp
- text 1,3 @
- text 1,2 @
- text 1,1 @
-
- color 1 15
- set var3 right(@equip_value,1)
- intin 25,7 @var3
- if @0==skip equip_skip
- if @0==up equip_skip
-
- set equip_value @0
-
- equip_skip:
- set equip_sav_1 (@equip_value/100)
- set equip_sav_2 (@equip_value/100)*2
- set equip_sav_3 (@equip_value/100)*5
-
- sum_savings
- color 1
- rect 25,7 33,7
- rect 39,7 48,7
- rect 54,7 63,7
- rect 69,7 78,7
- color 15 1
- text 34-len(@equip_value),7 @equip_value
- text 48-len(@equip_sav_1),7 @equip_sav_1
- text 63-len(@equip_sav_2),7 @equip_sav_2
- text 78-len(@equip_sav_3),7 @equip_sav_3
-
- if @0==up getcost
- goto getinv
-
- ; SUBR SUM_SAVINGS -- add all savings
- ;
- sum_savings:
- set tot_sav_1 @inv_sav_1+@purch_sav_1+@labor_sav_1
- set tot_sav_1 @tot_sav_1+@prodn_sav_1+@equip_sav_1
- set tot_sav_2 @inv_sav_2+@purch_sav_2+@labor_sav_2
- set tot_sav_2 @tot_sav_2+@prodn_sav_2+@equip_sav_2
- set tot_sav_3 @inv_sav_3+@purch_sav_3+@labor_sav_3
- set tot_sav_3 @tot_sav_3+@prodn_sav_3+@equip_sav_3
-
- color 1
- rect 39,5 48,5
- rect 54,5 63,5
- rect 69,5 78,5
-
- color 15 1
- text 48-len(@tot_sav_1),5 @tot_sav_1
- text 63-len(@tot_sav_2),5 @tot_sav_2
- text 78-len(@tot_sav_3),5 @tot_sav_3
-
- return ; SUBR SUM_SAVINGS
- -------------------------------------------------
- ; SUBR INTIN -- gets an integer from kbrd
- ; @1 = x
- ; @2 = y
- ; @3 = blink bgrnd (for flashing)
-
- intin:
- set x @1
- set y @2
- local newint ""
- local newchar 0
- set blinkchar @3
- set firsttime true
-
- int_top:
- text @x+8,@y chr(177)
- waitkey 25 inv_loop_2
- text @x+8,@y @blinkchar ; blank out the first spot
- goto inv_loop_3
- inv_loop_2:
- text @x+8,@y @blinkchar
- waitkey 25 int_top
- inv_loop_3:
-
- getkey newchar
- if asc(@newchar)<asc("0") not_numb
- if asc(@newchar)>asc("9") not_numb
- set newint @newint$@newchar
- goto next_char
- waitkey ; after 0<c<9
-
- not_numb:
- if asc(@newchar)==13 lv_intin ; enter?
- if asc(@newchar)==8 back_up ; enter?
- if asc(@newchar)==80 dn_arrow ; down arrow?
- if asc(@newchar)==72 up_arrow
- noise 500 300 20
- goto next_char
-
- back_up:
- if len(@newint)==0 next_char ; 0 len str?
- set newint left(@newint,len(@newint)-1) ; drop last digit
- goto next_char
-
- next_char:
- set firsttime false
- color 15
- rect @x,@y @x+8,@y
- color 1,15
- text @x+9-len(@newint),@y @newint
- if len(@newint)==9 lv_intin ; max input length
- if len(@newint)==0 ; update blink bgrnd
- set blinkchar " "
- else
- set blinkchar right(@newint,1)
- endif
- goto int_top
-
- dn_arrow:
- return "skip"
-
- up_arrow:
- return "up"
-
- lv_intin:
- if @firsttime<>true lv_int_2
- return "skip" ; just <Enter> = DOWN
- lv_int_2:
- note 500 20 10
- if len(@newint)==0
- set newint 0 ; backsp whole entry
- endif
- return @newint ; END SUBR INTIN
- ---------------------------------
-
- line1:
- " Use this worksheet to see how much money MAXIMO Series 3 can save you. Note "
- " that savings increase over time as you gain experience with MAXIMO and CMMS. "
- dataend
- title_row:
- "══════════════════════╤══════════╤══════════════╤══════════════╤══════════════"
- " SAVINGS CATEGORY │ VALUE │ YR 1 SAVINGS │ YR 2 SAVINGS │ YR 3 SAVINGS "
- "══════════════════════╪══════════╪══════════════╪══════════════╪══════════════"
- ;012345678901234567890123456789012345678901234567890123456789012345678901234567
- inv:
- "1. Spares Inventory │ │ 3% │ 5% │ 7% "
- "──────────────────────┼──────────┼──────────────┼──────────────┼──────────────"
- purch:
- "2. Maint. Purchases │ │ 5% │ 10% │ 15% "
- "──────────────────────┼──────────┼──────────────┼──────────────┼──────────────"
- labor:
- "3. Overtime Labor │ │ 5% │ 10% │ 20% "
- "──────────────────────┼──────────┼──────────────┼──────────────┼──────────────"
- prodn:
- "4. Downtime (hrs/yr) │ │ │ │ "
- " cost/lost hour │ │ │ │ "
- " downtime cost/yr │ │ 3% │ 5% │ 10% "
- "──────────────────────┼──────────┼──────────────┼──────────────┼──────────────"
- equip:
- "5. Prod. Asset Value │ │ 1% │ 2% │ 5% "
- "══════════════════════╪══════════╪══════════════╪══════════════╪══════════════"
- "* Savings Potential │ │ $ │ $ │ $ "
- "══════════════════════╧══════════╧══════════════╧══════════════╧══════════════"
- cmds:
- " <Backspace>=erase <Enter>=accept < >=next row <PrintScreen>=print <F10>=done "
- invhlp:
- " MAXIMO helps minimize stock levels, minimize sku's, eliminate obsolete parts."
- " Reducing inventory saves interest, warehousing, insurance, etc. In Year 3 "
- " reduce inventory 20% and save 35% inventory carrying costs to net 7% savings."
- purchhlp:
- " MAXIMO helps secure vendors' best prices, minimize emergency order costs, and"
- " predict expenditures. Savings increase to 15% of maintenance purchases. "
- " Please enter current annual maintenance purchases. "
- laborhlp:
- " MAXIMO matches labor skills to jobs, identifies needed parts and tools, and "
- " uses PM to reduce emergencies. Only overtime reduction is included here. "
- " (Regular labor productivity gain is substantial, but difficult to estimate.) "
- prodnhlp:
- " MAXIMO reduces unplanned downtime occurrences, minimizes maintenance time, "
- " coordinates PM and production schedules, and analyzes outage history. Result "
- " is reduced downtime. Enter annual downtime hours and hourly production cost. "
- equiphlp:
- " MAXIMO MAKES PM WORK with equipment condition tracking and prioritization "
- " and management of repair projects. Equipment life extension is conserva- "
- " tively estimated to save 1-5%. Enter book value of production equipment. "
-
-
-
- clock:
- video m
- color 8
- clearscr
-
- set pendxoff 34
- set pendyoff 82
- set basex 62 ;
- set basey 40
- set delay 20
-
- color 0 ; floor
- rect 0,@basey-2 639,@basey-6
-
- cload clock3.clp 1 0 0
- putup @basex,@basey 1
- cfree 1
-
- cload pendulm1.clp 1 1 0
- cload pendulm2.clp 2 1 0
- cload pendulm3.clp 3 1 0
- cload pendulm4.clp 4 1 0
- cload pendulm5.clp 5 1 0
-
- mark 4
- putup @pendxoff+@basex,@pendyoff+@basey 1 @delay
- putup @pendxoff+@basex,@pendyoff+@basey 2 @delay
- putup @pendxoff+@basex,@pendyoff+@basey 3 @delay
- note 500 10 10
- putup @pendxoff+@basex,@pendyoff+@basey 2 @delay
- putup @pendxoff+@basex,@pendyoff+@basey 1 @delay
- putup @pendxoff+@basex,@pendyoff+@basey 4 @delay
- putup @pendxoff+@basex,@pendyoff+@basey 5 @delay
- note 1000 10 10
- putup @pendxoff+@basex,@pendyoff+@basey 4 @delay
- loop
-
- cload roicall.clp 10 1 0
- putup 176,70 10
-
- mark 20
- putup @pendxoff+@basex,@pendyoff+@basey 1
- waitkey 20 pend_1
- goto pend_done
- pend_1:
- putup @pendxoff+@basex,@pendyoff+@basey 2
- waitkey 20 pend_2
- goto pend_done
- pend_2:
- putup @pendxoff+@basex,@pendyoff+@basey 3
- note 500 10 10
- putup @pendxoff+@basex,@pendyoff+@basey 2
- waitkey 20 pend_3
- goto pend_done
- pend_3:
- putup @pendxoff+@basex,@pendyoff+@basey 1
- waitkey 20 pend_4
- goto pend_done
- pend_4:
- putup @pendxoff+@basex,@pendyoff+@basey 4
- waitkey 20 pend_5
- goto pend_done
- pend_5:
- putup @pendxoff+@basex,@pendyoff+@basey 5
- note 1000 10 10
- waitkey 10 pend_6
- goto pend_done
- pend_6:
- putup @pendxoff+@basex,@pendyoff+@basey 4
- waitkey 20 pend_7
- goto pend_done
- pend_7:
- loop
- goto pend_ex
- pend_done:
- break pend_ex
- pend_ex:
-
-
- cload roiblank.clp 10 1 1
- cfade 24 176,70 10
- waitkey 100
- putup @pendxoff+@basex,@pendyoff+@basey 1
- cfree 1 2 3 4 5 6 7
- cload 12oclock.clp 1 0 0
- putup @basex+50,@basey+259 1
-
- mark 2
- note 137 50 50
- note 172 50 50
- note 153 50 50
- note 230 100 50
- waitkey 50
- note 230 50 50
- note 153 50 50
- note 137 50 50
- note 172 100 50
- waitkey 50
- loop
-
- if @all==on
- link master.txt entry_15
- else
- link master.txt entry_14
- ; END ROI
-